package com.landian.commons.jpa.order;

import com.querydsl.core.types.Path;
import org.apache.commons.collections.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * 排序单元容器
 *
 * @author caojl
 * @create 2017/12/14
 **/
public class Sort {
    /**
     *
     */
    public static Sort newInstance(){
        return new Sort();
    }

    /**
     * 更新单元容器
     */
    public List<Order> orderList = new ArrayList<>();

    /**
     *
     */
    public Sort asc(Path path){
        return add(Order.asc(path));
    }

    /**
     *
     */
    public Sort desc(Path path){
        return add(Order.desc(path));
    }

    /**
     * 更新单元
     */
    public Sort add(Order... orders){
        if(null != orders){
            for (Order order : orders) {
                orderList.add(order);
            }
        }
        return this;
    }

    /**
     * 更新单元
     */
    public Sort add(List<Order> orders){
        if(CollectionUtils.isNotEmpty(orders)){
            for(Order order : orders){
                if(null != order){
                    orderList.add(order);
                }
            }
        }
        return this;
    }

    /**
     * 返回列表
     */
    public List<Order> getList(){
        return orderList;
    }
}
